The present invention relates to data center infrastructure, and more particularly, this invention relates to providing priority information to packets during overlay network processing.
Network virtualization is an emerging data center and cloud computing trend which aims to virtualize a network as seen by end stations in a way that greatly simplifies network provisioning in multi-tenant environments, as well as traditional environments. One of the more common techniques of achieving network virtualization is to use network overlays, where tunnels are established between servers, edge network switches, and gateways to which end stations connect. The tunnel is actually implemented by encapsulating packets transmitted by a source end station into an overlay header that transports the packet from the source switch to a target switch in user datagram protocol (UDP) transport via an internet protocol (IP)-based network. The overlay header includes an identifier (ID) that uniquely identifies the virtual network. The target switch (tunnel end point) strips off the overlay header encapsulation, UDP transport header, and IP header, and delivers the original packet to the destination end station via conventional network connections. In addition to this tunneling mechanism, the edge switches participate in an address discovery protocol, which may be learning/flooding based, or lookup-based.
Overlay networks, like Virtual eXtensible Local Area Network (VXLAN), Network Virtualization using Generic Routing Encapsulation (NVGRE), etc., connect geographically separated Layer-2 (L2) networks using tunnels. These are L2 over Layer-3 (L3) tunnels. L2 packets originated by a virtual machine (VM) in a VXLAN and destined to another VM or group of VMs in same VXLAN in another physical location are carried over L3 tunnels.
An overlay network may be implemented using a number of VMs with a virtualization platform controlling the processing of networking packets in and out of each VM and one or more VMs may be associated with the overlay network. A virtualization platform processes the networking traffic associated with each overlay network and/or VM using predefined properties and policies for the corresponding overlay network and/or VM. As the number of overlay networks increases, so does the processing load requirements of the virtualization platform.
A server may host any number of VMs, but the VMs do not always set packet priority bits in virtual local area network (VLAN) tags of the packets when the packets are tagged during egress processing. In addition, virtual switches (vSwitches) within a server do not always set packet priority bits in VLAN tags if the packets are tagged or double tagged during egress processing. This is because the VM or vSwitch may rely on an immediate switch to which the server is connected to provide the priority tagging in the VLAN tags. Tagging is only required, according to processing standards, when a packet is being classified or when the packet is being attributed to a particular group.
Underlay tunneling and packet handling modules for VXLAN or other overlay networks do not have visibility to any priority tagging of inner packets. This creates a problem for all further packet processing engines downstream which must handle the packet without knowing a priority of the packet. occasionally, high priority inner packets (e.g., inner Fiber Channel over Ethernet (FCoE) packets, inner video packets, etc.) may receive low priority processing due to underlay packet priority not matching the high priority inner packets. Hence, in some instances, these high priority packets may even be dropped due to ambiguity of the priority.
Accordingly, it would be beneficial to have a solution which accounts for a packet's priority even when processing an underlay packet having the packet encapsulated therein.